Until recently, storage systems have typically operated with small storage area networks (SANs) that provide connectivity between a specific storage device and specific host device drivers that know the capabilities of the storage device. In these environments, performance factors can be tuned by the manufacturer before a product is installed for customer use.
More recently storage virtualisation systems have been developed to enable simplified storage management of different types of storage on one or more large SANs by presenting a single logical view of the storage to host systems. An abstraction layer separates the physical storage devices from the logical representation and maintains a correlation between the logical view and the physical location of the storage.
Storage virtualisation can be implemented as host-based, storage-based or network based. In host-based virtualisation, the abstraction layer resides in the host through storage management software such as a logical volume manager. In storage-based virtualisation, the abstraction layer resides in the storage subsystem. In network-based virtualisation, the abstraction layer resides in the network between the servers and the storage subsystems via a storage virtualisation server that sits in the network. When the storage virtualisation server is in the data path between the hosts and the storage subsystem, this is referred to as in-band virtualisation. The metadata and storage data are on the same path. The server is independent of the hosts with full access to the storage subsystems. It can create and allocate virtual volumes as required and presents virtual volumes to the host. When an I/O request is received, it performs the physical translation and redirects the I/O request accordingly. For example, the SystemStorage® SAN Volume Controller from IBM® (SystemStorage and IBM are registered trademarks of International Business Machines Corporation) is an in-band virtualisation server.
In such storage virtualisation controller (SVC) systems connected between the host computer and the storage devices, the knowledge of the capabilities and performance characteristics of the storage devices has typically not been available to the SVC. In addition, SVCs typically use many different types of storage on large SANs. The virtualisation system may not have been specifically tuned to work with a particular storage device, and, in an environment in which the virtualization appliance allows the attachment of devices from many vendors and the use of many types of storage controller, the performance characteristics of these devices and controllers can vary greatly.
There is no such thing as a typical system environment, and therefore performance tuning today requires much user thought and continued maintenance. There is no simple way to determine that ‘device X is causing problems’ or ‘controller Y could perform better’. In conventional systems of this type, there is no automated method to help users configure, balance and maintain the best performance possible from the system as a whole.
It would thus be desirable to have a technology for controlling performance in storage networks, and more particularly, to have an apparatus and method for optimising performance in a heterogeneous storage network having a virtualization controller.